"""
@-*- coding: utf-8 -*-
@ python：python 3.8
@ 创建人员：ylx
@ 创建时间：2025/4/25 下午2:44
@ 内容：和common模块一起，演示Python反射机制的实际使用，类似展示了一个路由功能
"""
import common


def run():
    inp = input("请输入您想访问页面的url： ").strip()
    # # 正常方法，使得用户的输入，可以调对应common模块的方法，但是如果模块或者网页一朵
    # # 那你只能写更多的if else判断，工作量非常大，且效率较低，所以我们考虑使用 Python的反射机制
    if inp == "login":
        common.login()
    elif inp == "logout":
        common.logout()
    elif inp == "home":
        common.home()
    else:
        print("404")


    # # 使用反射机制，通过输入，查找模块中对应的和输入字符串名称一样的函数，并调用
    # if hasattr(common, inp):
    #     func = getattr(common, inp)
    #     # print(func)
    #     func()
    # else:
    #     print("404")


    # # 使用动态导入模块的方法-通过拆分，明确要引入哪个模块 哪个方法，若方法不存在则404
    # modules, func = inp.split("/")
    # obj = __import__(modules)
    # if hasattr(obj, func):
    #     func = getattr(obj, func)
    #     func()
    # else:
    #     print("404")


    # # 使用动态导入模块的方法-通过拆分，明确要引入哪个模块 哪个方法，若方法不存在则404
    # # 优化对不存在模块的兼容,捕获异常
    # modules, func = inp.split("/")
    # try:
    #     obj = __import__(modules)
    #     if hasattr(obj, func):
    #         func = getattr(obj, func)
    #         func()
    #     else:
    #         print("404")
    # except ModuleNotFoundError:
    #     print("404 not found")



if __name__ == "__main__":
    run()
